Hvordan utvikle på MDB2

MDB2 utvikles i git, konvertert fra bzr vinteren 2012. For mer informasjon om git og grunnleggende bruk oppfordres følgende node: git

Lag en lokal kopi

Først tar vi en klone av master-branchen.

bruker@maskin:~/dev$ git clone gitea@gitea.samfundet.no:ITK/mdb2.git

Opprett mdb2/include/config.local.php etter malen under (husk å bruke mdb2_dev til utvikling!) [HUSK Å SETTE db_pass, tip: kok passordet, se andre sin config på cassa]

<?php
/* MedlemsDB2
 * © 2004-2007 ITK, Studentersamfundet i Trondhjem <itk@samfundet.no>
 *
 * Description:
 *	Configuration and initialization.
 */

// Debug mode
// 0 - Debug off, use for production
// 2 - Debug on, use for development
$config['debug'] = 2;

// Mail address for error logging
$config['error_mail'] = "bruker@samfundet.no";
$config['adressa_mail'] = "bruker@samfundet.no";
$config['semester'] = "10";

// Database
$db_type = 'pgsql';
$db_host = 'sql.samfundet.no';
$db_port = 5432;
$db_name = 'mdb2_dev';
$db_user = 'mdb2web';
$db_pass = '';

?>

Sjekk inn som vanlig etter hver endring osv. Husk små commits! Vanlig arbeidsflyt:

bruker@maskin:~/dev/mdb2$ vim foo.php
gjør endring
bruker@maskin:~/dev/mdb2$ git commit -a
skriv commitmelding
bruker@maskin:~/dev/mdb2$ vim bar.pl
gjør endring
bruker@maskin:~/dev/mdb2$ git commit -a
ad infidum
bruker@maskin:~/dev/mdb2$ git push

Oppsett for sending av commit-eposter

Det er veldig greit for andre å følge med på utvikling som skjer ved at man sender epost når man koder noe nytt. Dette kan gjøres veldig greit ved å legge inn en epost-hook i git-configen din. (Det er allerede en sentral hook for når du pusher til stable.)

bruker@maskin:~/dev/mdb2$ ln -s /home/cassarossa/itk/felles/git/post-commit-email .git/hooks/post-commit
bruker@maskin:~/dev/mdb2$ git config hooks.mailinglist itk-commits-mdb@samfundet.no
bruker@maskin:~/dev/mdb2$ echo mdb2.$USER > .git/description

Det vil da bli sendt en epost hver du commiter noe til det aktuelle arkivet.

Sette opp utviklings-instans

Man setter gjerne opp en utviklings-instans på cirkus, og vi ønsker en url alá http://hermansc.mdb2.samfundet.no

Det er dog noen steg vi må igjennom for få dette til:

Apache-konfigurasjon

Kopier en fungerende config fra en annen på cirkus. De ligger i /etc/apache2/sites-available/ Endre brukernavnet i configen til deg selv, og pass på at DocumentRoot er riktig. NB! Hvis du planlegger å serve filene fra hjemmeområdet er det lurt på dobbeltsjekke at hjemmemappen din har permisson +x.

ACL-er

Husk å sette opp riktige rettigheter ved å følge noden acl permissions

For å legge til denne i sites-enabled bruker vi følgende, kjør på cirkus:

bruker@maskin:~$ sudo a2ensite hermansc.mdb2.samfundet.no

DNS

Følg instruksjonene i DNS-noden.

Deretter reloader vi configen til Apache:

bruker@maskin:~$ sudo systemctl reload apache2

Verifiser at du får opp utviklingsmiljøet ditt ved å gå til http://brukernavn.mdb2.samfundet.no

Kerberos Om du er fornøyd med at du bruker prod ACL, så må du ikkje gjøre noe med Kerberos-keytab. Dette fordi mdb2 rot-urlen ikke bruke ACL, og mdb2/admin har en .htaccess config fil, med defaults som bare bruke den som er i prod, som finnes.

Om du ønsker å overstyre denne:

  1. Vi må sette opp egen Kerberos-keytab for utviklings-instansen din. Følg det som står i "Opprette Kerberos-keytab" i ITKACLbruk-artikkelen.
  2. Legg inn følgende i bunnen av din apacheconfig for devinstansen, også juster itkacl stien på bunnen som ønsket.
        <Location /admin/>
                AuthType GSSAPI
                GssapiCredStore keytab:/etc/apache2/krb5/bruker.mdb2.keytab
                AuthName "Samfundets medlemsdatabase"

                GssapiCredStore cache:MEMORY:user_ccache
                GssapiBasicAuth On
                GssapiAllowedMech krb5
                GssapiBasicAuthMech krb5
                GssapiNegotiateOnce On

                # Send brukere i Windows rett til basic auth, unntatt Firefox
                BrowserMatch Windows(?!.*Firefox) gssapi-no-negotiate

                require itkacl /web/medlemsdb
        </Location>

        AccessFileName .htaccess.local

Voilá

https

Vi har lyst til å bruke https, se noden om Let's Encrypt

Når du har utviklet det du vil

Det første du må gjøre er å forsikre deg om at det ikke er endringer i det offisielle MDB2-treet som har skjedd mens du utviklet, så kjør en update av mainline og gjør en merge fra mainline:

bruker@maskin:~/dev/mdb2$ git commit
skriv inn commitmelding
bruker@maskin:~/dev/mdb2$ git pull
bruker@maskin:~/dev/mdb2$ git push

Er det konflikter eller andre endringer under pull/push, løs opp og commit.

Prøv å gjøre commit-meldingene dine rimelig informative! Bare «merge fra –bruker» er veldig lite nyttig, prøv å få med i korte trekk hva som faktisk er skjedd.

Produksjonssetting

Nå som MDB2-treet er i orden, kan du ssh-e til cirkus, som hoster MDB, og sette den nye versjonen i produksjon:

bruker@cirkus:~$ cd /var/www/samfundet.no/medlem
bruker@cirkus:~$ git pull

Produksjonssetting av Kortsys

Kortsys2s filer ligger på brukeren rita sitt hjemmeområde. På cassarossa:

bruker@cassarossa:~> sudo su - rita;
rita@cassarossa:~> cd ~/mdb2
rita@cassarossa:~> git pull

Voila.

Eldre/legacy informasjon

Satt ned hit etter konvertering til git, vinteren 2012:

Vi har et offisielt MDB2-repository som inneholder den kopien medlem.samfundet.no til en hver tid skal kjøre. Brukeren «mdb2» har dette treet to steder; en på cassarossa:/home/cassarossa/itk/mdb2/mdb2.bzr, og en på cirkus:/var/www/samfundet.no/medlem (som er medlem.samfundet.no). (Det ligger en symlink til sistnevnte på /home/cassarossa/itk/mdb2/web.)

Katalogen ~mdb2/mdb2 er det gamle baz-arkivet, som av sikkerhetsmessige og historiske årsaker ligger igjen. På samme måte er cirkus:/var/www/samfundet.no/mdb2/mdb2.baz det gamle baz-treet.

Lenker: Start, arch, atir, billig v1, hvordan utvikle, billig, hvordan utvikle, kortsys2, medlemsdb2, medlemsdb2rapporter, medlemsdb2unix, uka-no, hvordan utvikle

Epost: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2026-10-12 21:54 | Revisjon: 59 (historie, blame) | Totalt: 1957 kB | Rediger